package E_2024;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class E_100_8 {
    /*
    给定一组非负整数 nums，重排顺序后输出一个最大的整数
    注意：输出结果可能非常大，所以你需要返回一个字符串而不是整数。
    输入描述：
        数字组合
    输出描述：
        最大的整数
    示例1：
        输入
        9 10
        输出：
        910
    */
    public static void main(String[] args) {
        System.out.println(s(new int[]{9,5,10,44,98}));
    }
    public static String s(int[] nums){
        List<List<Integer>> list = new ArrayList<>();
        for (int num : nums) {
            List<Integer> in = new ArrayList<>();
            do{
                in.add(num % 10);
                num = num/10;
            }while (num > 0);
            list.add(in);
        }
        list.sort((List<Integer> n1, List<Integer> n2) ->{
            for (int i = 0; i < Math.min(n1.size(), n2.size()); i++) {
                if (n2.get(i) > n1.get(i)) return -1;
            }
            return 1;
        });
        StringBuilder sb = new StringBuilder();
        for (List<Integer> integers : list) {
            for (Integer inter : integers) {
                sb.append(inter);
            }
        }
        return sb.reverse().toString();
    }
}
